Adaptive name resolution

ABSTRACT

A method, system, and computer-readable memory containing instructions include receiving a DNS request containing information related to user-specific information, device-specific information, and/or authentication information, analyzing the information, determining an appropriate action to take based on analyzing the status, and taking the appropriate action. Actions may include responding with an individualized network layer address or service location address, delaying sending a response message, sending a network layer address or service location address corresponding to a site containing authentication information, and sending a response with a network layer address or service location address with a web address configured to mimic the website related to the requested resource.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation-in-part application of U.S. patent Ser. No. 13/251,607 filed on Oct. 3, 2011, the disclosure of which is incorporated by reference herein in its entirety.

TECHNICAL FIELD

This disclosure generally relates to Domain Name Service (DNS) resolution. In particular, this disclosure relates to methods and systems for adaptive DNS resolution for DNS requests and providing adaptive and dependent responses.

BACKGROUND

The DNS system utilizes a hierarchical structure to associate fully qualified domain names to a particular IP address in response to a DNS query. For example, if a user visits the website www.example.com on their computer's Internet browser, typically, the stub resolver on the computer would (1) first check its own DNS cache for a suitable response; (2) if not available in cache, query a recursive name server or possibly each level of the delegation graph from the root DNS server downward with the same information, expecting a reply. If the queried system has the information or is authoritative for the precise question, it provides a response or error. If it does not but knows who is, it provides a delegation/referral to the child that should have more precise information. To leverage larger caching mechanisms, a DNS resolver (recursive name server) may be used between steps (1) and (2). Because a DNS resolver services many users, it typically holds a larger cache, helping to reduce the load on root servers and registry servers and often minimize response times for users because it is commonly topologically closer to the client. A DNS resolver may also act as a recursive name server, handling the multiple transactions and following delegations/referral chains between different name servers to resolve the final IP address for the resource in question, simply passing the final answer back to the user's computer. A DNS resolver may ultimately provide in its response a network layer identifier or service location id, which in some instances may be the same.

Some DNS servers support basic filtering of DNS queries based on the source IP address of the original querying machine. For example, some servers may compare the source IP address to whitelists or blacklists of IP addresses and allow or disallow the IP address accordingly. Other servers may use the source IP address to approximate the location (geolocation) of the query source machine, and use this location information to customize the response by returning an IP address of a resource server that is thought to be closer in proximity than another. In all of these cases, generally, once the response is allowed, the DNS response returns the IP address (or network layer identifier or service location id) of a machine that will provide access to the resource server. This IP address, the network layer identifier and service location id, is resolved regardless of the status of the user's permission to ultimately use the resource.

For example, suppose user visited a web site with a customized portal on it, such as mypage.example.com If the user does not have a valid account with mypage.example.com, allowing the user to access the site at all may be unnecessary and poses a potential security risk through disclosure of the network layer identifier and locator for the resource. Even if the user does have an account with mypage.example.com, some mechanism must still be employed for the user to be identified and authenticated by the website.

Various means exist to authenticate a user that is requesting a resource. In a typical scenario, the user may have login credentials on a website, or a cookie associated with past exchanges of those credentials. The login credentials, once validated, authenticate the user, allowing access to member only or user specific resources. For example, a user visiting a bank's website may login to view information associated with the user's account.

One problem with this type of authentication is that, until the user is authenticated or identified, the resource resolution process typically acts in the same way for every user. Advanced networking mechanisms may be employed on the resource server to filter different types of requests before authentication, such as diverting network traffic based on the geolocation of a user's IP address, e,g., a user in Europe may be diverted to a server based in Europe.

Alone, these techniques are problematic for several reasons. One problem with these techniques is that in every instance the resource IP address (or the network layer identifier and service location identifier) is exposed. This is undesirable because the disclosed nature of the resolved IP address (or network layer identifier or service location identifier) exposes the resource to distributed denial of service (DDoS) attacks, probes of the software of the systems associated with the IP address for security weaknesses, or attempts to gain unauthorized access or control of user accounts or other resources normally accessed at that IP address (or network layer identifier or service location identifier). This situation is akin to, after receiving a knock on the front door, opening the door just a crack to see who is outside. If the person outside is malicious, once you open the door, the person may be able to get in. It would be safer to verify who is standing outside before opening the door, or perhaps not to disclose your home address and what resources may be available there in the first place.

A method and system is desired that can perform adaptive including, but not limited to, authenticated responses to of a DNS requestor prior to returning an IP address (or network layer identifier or service location identifier), to in part ensure that the requestor has authorization to access to the ultimate resource before opening the door or disclosing the address. The following disclosure solves these problems and provides added conveniences and functionality to the name resolution process. For example, as described below, this pre-authentication system allows administrators to prescribe specialized behavior at the DNS level based on the authentication status of the requestor.

SUMMARY

A method, system, and computer-readable memory containing instructions include receiving a DNS request containing information including, but not limited to, authentication information and information related to an operating environment of the user and/or the user's device that initiated the DNS request, validating the information, determining an appropriate action to take based on the validating status, and taking the appropriate action. The information related to the operating environment of the user can include, but not limited to, spatial, i.e., the location of the user, temporal, i.e., the time of day or week that the DNS request is being made, security level or access permission level of the user, or combinations thereof. The information related to the operating environment of the user's device can include, but not limited to, type of device, hardware configuration, software configuration, platform-type of the device, wireless connectivity information, strength of wireless signal, spatial, i.e., location of the device, and combinations thereof. Actions may include responding with an individualized network layer identifier or service location identifier (such as an IPv4 or IPv6 network layer address), delaying sending a response message, sending an IP address (or network layer identifier or service location identifier) corresponding to a site containing authentication information, and sending a response with an IP address or network layer identifier or service location identifier) corresponding to a web address configured to mimic the website related to the requested resource. In implementations, the actions can be dependent and/or customized based on the information related to the user's and/or the user's device operating environment.

In an embodiment, the information is added to the DNS resolution request by a device other than a device that originates the DNS resolution request. In some embodiments, the information includes authentication information, for example, one or more of: a source IP address, a username/password combination, an encrypted data package, and hardware identification information.

In some embodiments, the information is received from a resource server and the information is updated in the adaptive DNS server. In some embodiments the individualized network layer identifier or service location identifier may correspond to a one-time-use identifier or an identifier that is normally dedicated to a particular user.

In some embodiments, where identification information determines that the requestor has previously been denied access to the resource server IP address, the network layer identifier or service location identifier, and received a delayed response, subsequent DNS requests receive longer and longer delays before processing. In some embodiments, the authenticated user is classified into a class and, depending on the class, receives prioritized access to the resource server.

In some embodiments, a community authority trust may issue an authentication certificate confirming the identity of a user requesting the name resolution of a domain name. A user may use the authentication certificate to make the name resolution request. Once validated, the authentication certificate may be used by the adaptive DNS server to determine an IP address (or network layer identifier or service location identifier) to provide in response to the request.

In some embodiments, the DNS request and identification information may be logged along with the DNS response or other action taken. These logs may be analyzed for statistical data trends in requests and responses. The logs may also be analyzed to determine security trends among various source IP addresses, e.g., for identifying IP addresses or users that should be blacklisted.

In some embodiments, the outcome of the validation of the authentication information may be used to create billing information, enabling a service operator to bill a client for certain types of responses.

In implementations, a system for authenticating a DNS request is disclosed. The system can comprise a community authority trust; an authenticating DNS server, comprising a processor and computer-readable memory. The computer-readable memory contains instructions, which, when executed on the processor, perform a method comprising: receiving, at the authenticating server, a DNS resolution request from a user, wherein the request includes a domain name to be resolved and an authentication certificate, wherein the authentication certificate was issued by the community authority trust in response to a request for identification authentication by the user; validating, on the authenticating server, the authentication certificate; determining, by the authenticating server, a network layer address or service location address based on the validation of the authentication certificate; and sending the network layer address or service location address to the user.

In implementations, the authentication certificate indicates the authentication of a group of users. The DNS resolution request can also include certificate authority credentials of the community authority trust. The authentication certificate can contain permission data corresponding to the DNS resolution request.

In implementations, the DNS action can comprise determining a network layer address or service location address corresponding to the DNS resolution request based on the permission data; and sending a signal to a resource server, wherein the signal causes the resource server o provision the network layer address or service location address.

In implementations, the hardware identification information can include device-related data, including but not limited to, device software and application information, such as OS, patch version, user-agent, etc. can be captured and provided to the adaptive server. The device-related data can be analyzed by the adaptive server, or another device, such as a security server in communication with the adaptive server, to provide enhanced security controls for the user and/or device.

It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the application, as claimed.

The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the application and together with the description, serve to explain the principles of the application.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an exemplary architecture demonstrating components that r may be used to implement an adaptive resolution platform;

FIG. 2 illustrates an exemplary process of receiving a DNS request, analyzing the DNS request, and returning a response;

FIG. 3 illustrates an exemplary process of validating information supplied in a DNS request;

FIG. 4 illustrates an exemplary process of classifying a user based on authentication information;

FIG. 5 illustrates an exemplary process of using IPv6 addresses in a DNS response based on user authentication;

FIG. 6 illustrates an exemplary process of providing a security response based on missing, unexpected, or invalid authentication information;

FIG. 7 illustrates an exemplary architecture demonstrating components that may be used to implement an adaptive resolution platform including a community trust authority; and

FIG. 8 illustrates an exemplary process of using an authentication certificate obtained from community trust authority to request an authenticated name resolution.

DETAILED DESCRIPTION

Reference will now be made in detail to the exemplary embodiments. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.

FIG. 1 illustrates an exemplary architecture (100) demonstrating components that may be used to implement an adaptive resolution platform. A user's computer (105) may instigate a DNS request. This request may be sent because the user visits a website, a program running on the user's computer initiates an online transaction, or any other possible reason that a user's computer would have the need to translate a fully qualified domain name, such as www.example.com, into its corresponding IP address. To begin the request, the user's computer (105) retrieves the name server information for the top level domain (TLD), e.g. “com,” through a referral response from a root server (110). The root server (110) returns the response with the name server for the TLD (115) The user's computer (105) next queries the name server for the TLD (115) for the fully qualified domain name information for the domain, e.g., “example”, and again receives a referral to the second-level domain authoritative name servers. The authoritative name server is the adaptive name server (120). In this example, the adaptive name server s authoritative to answer for the “www.example.com” fully qualified domain name and resolve it to the respective network layer address or service location address.

The adaptive name server (120) may have access to a localized caching system (125) to store both authentication information received from the us computer (105), and authentication information received from the resource authentication interface (135), in a data store (130). The adaptive name server (120) interfaces with a resource adaptive interface (135) to pass credentials, such as authenticated credentials, from the user's computer (105) to the resource adaptive interface (135) and to receive a response with information regarding the status, such as the authenticated status, of the user.

The resource adaptive interface (135) may also interface with the resource server (140). For example, the resource server for the website address http:www.example.com would be the server configured to respond to http requests for www.example.com at one or more IP addresses. If the user's computer (105) is authenticated, then the adaptive DNS server (120) may return an IP address (or network layer identifier or service location identifier) to the resource server (140) to the user's computer (105). Thenthe user's computer may access the resource server by the given IP address.

One skilled in the art will appreciate that the architecture of FIG. 1 is merely exemplary. Other networking devices may be incorporated to manage traffic. In particular, one skilled in the art would recognize that firewalls, load balancers, additional mirrored servers (name server, resouce server, adaptive interfaces, and authentication interfaces), and certain name server caches may be incorporated into the network design and architecture. Further, one skilled in the art will recognize that additional hierarchical DNS servers may be queried, e.g., secure.www.example.com, and that interfaces and servers may be combined to be on one physical machine. For example, the resource adaptive interface (135) may be physically and programmatically collocated on the same machine or machines as the resource server (140).

Further, although a DNS server on the Internet traditionally operates as returning an IP address, this function can be localized at higher IP layers for dedicated networks. For example a DNS server that returns a network layer identifier and a service location identifier may essentially be returning an IP address corresponding to a machine. However, a DNS server may also be understood to return a network layer identifier and service location identifier in the terms of a Uniform Resource Identifier (URI), identifying a particular layer and service location. One of ordinary skill in the art will appreciate that any mention of returning an IP address alone in this disclosure should be understood to alternatively and additionally include the possibility of distinguishing between a network layer identifier or a service location identifier.

The adaptive DNS server (120) may interface with a security policy engine (not shown), either external or internal to the network. The security policy engine may inform adaptive resolution functions at the adaptive DNS server (120) or any other networking device that is designed to make use of security policies. An exemplary architecture illustrating such a use of a security policy engine as a community-based policy trust is described below in conjunction with FIG. 7.

Turning back to the adaptive DNS server (120), the adaptive DNS server (120) may be implemented in software as software modules or programs on one or more computing systems. For example, the functionality of the adaptive DNS server (120) may comprise one or snore applications, which may comprise one or more computer units of computer-readable instructions which, when executed by a processor, cause one or more computers to perform steps of a method. In particular, the exemplary architecture in FIG. 1, may support execution of program code on one or more computers to accomplish the overall method. Computer-readable instructions may be stored on a computer-readable medium, such as a memory or disk. Such media typically provide non-transitory storage. One or more of the components depicted in FIG. 1, may be hardware components or combinations of hardware and software such as, for example,special purpose computers or general purpose computers. A computer or computer system may also comprise an internal or external database. The database may comprise one or more individual databases or databases configured to act together. The database may be implemented in a commercial, open source, or proprietary database program or may be contained in log files, flat files, or any other data storage mechanism. The components of a computer or computer system may, among other things, connect through a local bus interface or over a local or wide area network. The components depicted in FIG. 1 may be operatively connected to one another via a network, not shown, such as the internet, an intranet, or any type of wired or wireless communication system. Connections may be implemented through a direct communication link, a local area network (LAN), a wide area network (WAN) and/or other suitable connections.

In implementations, adaptive DNS server (20) can be operable to perform a variety of functions, including, but not limited, authentication operations. Adaptive DNS service (120) can also be operable to function as a correlation point for correlating information from requests and their requesters with information that is responsible to the requests that are specific to the attributes of the requesters. By way of a non-limiting example, when a DNS request is sent to the adaptive DNS server (120), other information can also be sent to be used adapting or customizing the response. As discussed above, the additional information can include information related to the user or the user's device operating environment. The adaptive DNS server (120) can collect this additional information and respond to the user based, at least in part, on this collected information. This additional information can also be combined with a multi-factor authentication protocol that can be used to control when, where, and how requests are provided to the user. The information collected by the adaptive DNS server (120) can also be used with additional security protocols to create logs of user traffic that can be used to track or determine potential security ricks or anomalous behavior.

FIG. 2 illustrates an exemplary process (200) of receiving a DNS request, analyzing the DNS request, which can include, but not limited, authenticating the DNS request, and returning a response. In step 210, the adaptive DNS server (120) receives a domain name resolution request for a domain name. As discussed above, he adaptive DNS server (120) is authoritative to respond for that domain name. The adaptive DNS server (120) examines the DNS request and determines that the request requires authentication in step 220. In particular, the adaptive DNS server (120) may be a multipurpose DNS server, acting both as an adaptive DNS server and a normal authoritative server. Thus, determining that the DNS request requires authentication allows the remaining steps of authenticating the request to proceed. If, in general operation, the DNS request did not require authentication, then normal DNS responding techniques would commence. Additionally or alternatively, the adaptive DNS server (120) can respond to the DNS request with other information that can be individualized for the specific user environment based on factors including, but not limited to, user, and thus, device location, device's hardware, software, and platform characteristics, and other relevant information.

In step 230, the process may consider whether the DNS request contains authentication information. If it does, the process may consider, in step 240, whether the authentication information matches the expected format and type of authentication information. If the authentication is in the proper format and type, the process will consider, in step 250, whether the authentication information is valid. If in any of the previous steps, the DNS request did not contain authentication information, it was present but in the wrong format or type of information, or if the authentication process was invalid, then an appropriate security action or response may be determined in step 270. The security action or response step will be discussed in more detail below. One skilled in the art will appreciate that steps 230 and 240, in particular, are optional and interchangeable, and are presented to demonstrate a means of culling out DNS requests before presenting them to be authenticated in a validation process. Other traffic management techniques may also be applied, such as whitelisting/blacklisting techniques and other such traffic management techniques according to known or yet to be discovered traffic management techniques.

If the DNS request is authenticated, the authenticated user or requestor may be classified into a particular class of user as in step 260. More will be discussed about classifications below. As noted in FIG. 2, step 260 is also optional. A response to the DNS request is returned to the user's computer (105) in step 270. If any of the tests failed, resulting in an unauthenticated request, a security action and response is determined as in step 280.

FIG. 3 illustrates an exemplary process (300) of analyzing, including validating, the information, including user-specific, device-specific, and/or authentication information, supplied in a DNS request corresponding to in exemplary step 250. The authentication information, is examined in step 310. The authentication cache (125) is examined to determine whether the user has been recently authenticated in accordance with implemented caching guidelines in step 320. If so, then the authentication cache may validate the user as authenticated in step 350. If not, then the adaptive DNS server (120) may query a resource authentication interface (135) to determine whether the authentication information is valid as in step 330. If the resource authentication interface (135) returns valid in step 340, then the user is determined to be authenticated. Otherwise, the user is determined to be unauthenticated as in step 360.

Authentication information covers an entire gamut of information that may be supplied in the DNS request or detected from the DNS request. Attributes provided by the requesting user in the DNS request include such things as an IP address, MAC address, reputation data, username/password, encryption schemes, hardware keys, geolocation information, fingerprint identification, encrypted packages using private/public key authentication schemes, machine hardware IDs product or license IDs, security policy certificates, or any other imaginable user-identifying information in the DNS query itself.

In one embodiment, authentication information may, instead of authenticating a particular user, authenticate a particular user as belonging to a group. In another embodiment, authentication information may be inserted by a packet monitoring device after the DNS request leaves the user's computer. For example, a corporate computer may send a DNS request which is then intercepted before leaving the corporate network, and updated by inserting authentication information in the request.

In another embodiment, the authentication information may be some data that has been encrypted by a private key in a PKI infrastructure. The authenticating server would then decrypt the data using a previously transmitted public key corresponding to the user's private key. Verifying the data authenticates that the user that encrypted the data is the expected user. For example, the adaptive DNS server may recognize the source IP address of a particular user, but require further proof through the above outlined PKI key pair encryption/decryption scheme. Further, the adaptive DNS server may encrypt the DNS response using its own private key, having provided the public key to the user's computer.

One skilled in the art will appreciate that other combinations of authentication information may be included to provide one or more indicia that the user's computer is the device it claims to be and that the user is allowed to receive a DNS response. Authentication information may also show that the user's computer is being operated by a particular user, thereby actually authenticating the particular user. For example, authentication information can include information pertaining to the identity of the user, such as name/password combinations and the like.

In implementations, adaptive DNS server can provide authenticating functionality using a multi-factor authentication technique, which can include 2-factor, 3-factor, or more. In this approach, the user is required to present two or more authentication factors such as a knowledge factor (“something that the user knows”), a possession factor (“something the user has”), and an inherence factor (“something the user is”). The multi-factor authentication technique can use a secure token, which can be unique a software object given to the user to prove the identity of the user, a passphrase, cookies, a one-time use password that is valid for only one use, and an encryption key. The secure token can be embodied in a physical device that the user retains, such as a smart phone application or a pocket-sized authentication token having a display that displays a changing passcode that must be entered into an authentication screen. The displayed passcode can be derived from a shared secret by a cryptographic process, for example, where the secret is hashed, using a cryptographic hash function, or otherwise cryptographically combined with a challenge, and the result is displayed. By using the multi-factor authentication technique the DNS server can determine to which request to respond or how to respond to a particular request based on the multiple factors. By way of a non-limiting example, the DNS server may respond to a request in one manner where the request originated using a particular machine, by a particular user, at a particular location, and at a particular time of day. Moreover, the DNS server may respond in a different manner if any or all the above factors are different and/or not valid.

FIG. 4 illustrates an exemplary optional process (400) of classifying a user based on authentication information corresponding to exemplary step 260. In step 410 the process determines available classifications for the particular resource requested. Exemplary classifications include such things as a “high,” “middle,” or “low” priority user; a governmental user; an emergency professional user; a high-traffic user; a free user: a paid user; a premium user; a guest user; and so on. A user may be classified into one or more of the available classifications in step 420. In step 430, the classification of the user is tracked so that the classification information may be used later in the process of returning a DNS response.

FIG. 5 illustrates an exemplary process (500) of using IPv6 addresses in a DNS response based on use authentication corresponding to exemplary step 270. Because the IPv6 address space is so vast, in one embodiment, individualized IPv6 addresses may be returned as the DNS response. Whereas the traditional IP address space (IPv4) contains a total number of theoretical addresses as 4,394,967,296 addresses, the number of theoretical IPv6 addresses is 10²⁸ times larger. To be sure, over 4 billion IP addresses is a lot of addresses, but because of architecture limitations, the actual number of available addresses is significantly less. IPv6 addresses add so many available IP addresses, that each person on the earth could have almost 8 million trillion IP addresses. Authenticated DNS resolution is poised to take advantage of the large IP address space by utilizing individualized IPv6 responses. One skilled in the art would understand that the exemplary embodiments described below with respect to IPv6 addresses could equally apply to any name to network layer identifier or service location identifier resolution processes.

Each DNS response may be individualized based on the user accessing the resource. For example, in one variation, the DNS service may return a permanently assigned IPv6 address corresponding to the user. The IPv6 address may be unique to the user or may be shared amongst two or more users. In another variation, the adaptive DNS server may return a temporary IPv6 address that is only good for a particular length of time or until activity to the IPv6 address times out after a period of inactivity. Once the IPv6 address is used, it may either never be used again, or may be recycled to be used in the future. Using a permanent IPv6 or other network layer address has the advantage of creating more easily followed logging of access to the resource. Other embodiments may apply these principles of a permanently or temporarily assigned IPv6 address to both a network layer identifier or service location identifier individually.

Turning back to FIG. 5, step 510 considers whether the response will issue a one-time-use (or seldom used) IPv6 (or network layer identifier or service location identifier) address or a previously assigned (permanent) address. If the process issues a one-time-use address, the adaptive DNS server (120) will select a valid address to return as in step 520. The IP (or network layer identifier or service location identifier) address may be selected from a pool of available addresses or the resource authentication interface (135) or resource server (140) may be queried for an address to respond with. In step 530, the adaptive DNS server (120) may notify the resource server (140) of the address assignment. Then the resource server (140) may provision the IP (or network layer identifier or service location identifier) address on the machine.

If the process issues a previously assigned address, the process is similar. The adaptive DNS server (120) will retrieve the appropriate IP (or network layer identifier or service location identifier) address either from its own authentication cache (125) or may query the resource server (140) for an available address, as in step 540. The previously assigned address may optionally be permanently (or semi-permanently) assigned to a particular user. The determined IP (or network layer identifier or service location identifier) address is then sent to the resource server (140) as in step 550 so that the resource server (140) can provision the IP address on the machine or machines.

One benefit of using individually assigned addresses is that a permanently assigned IP (or network layer identifier or service location identifier) address can be completely obscured from the public. Because only assigned addresses to the resource server (140) are returned to the user's computer, DDoS attacks to the resource server over an assigned address may be mitigated by simply deprovisioning (or unassigning) the address being attacked from the resource server (140).

When individualized IP (or network layer identifier or service location identifier) addresses are used in providing authenticated DNS responses, the resource server (140) may not need any additional authentication schemes. For example, if the resource server (140) is a bank website, additional login credentials may be required, but if the resource server (140) requires less security, such as with a cloud based music service, ecommerce site, or customized portal, for example, then additional authentication may root be necessary. In this case, the resource server could tell identity simply by recognizing which IP (or network layer identifier or service location identifier) address was used in accessing the resource. When a user stops using the resource server (140) for a certain period of time, on request (e.g., “logout”), or in response to another set of circumstances, the resource server (140) may deprovision the IP (or network layer identifier or service location identifier) address.

In an embodiment, rather than provisioning a dedicated IP (or network layer identifier or service location identifier) address on the resource server, the source IP address of an authenticated user may be added to a whitelist in a firewall placed between the resource server and user access. In this way, the firewall acts as a buffer to help protect the resource server from unwanted intrusion. Even if the IP address of the resource server becomes publicly known, exposing the IP address to potential DDoS attacks and the like, the firewall may block all traffic unless a specific security policy exists for a particular source IP address (or other identifying feature) of an authenticated user. Other embodiments may combine the ability to dynamically set a security policy on a firewall and the ability to provision IP addresses or other network layer addresses on a resource server.

One skilled in the art will appreciate that additional networking devices may be used in conjunction with the embodiments described herein. For example, the architecture may also use a load balancer to distribute demand to a multitude of resource servers. In this case, an IP address may be provisioned on the load balancer along with a policy directing which resource server to forward traffic to. The IP address may also be provisioned on the identified resource server. Other variants of common networking architecture schemes incorporating the embodiments described herein would be apparent to one of ordinary skill.

In an embodiment that utilizes classification of authenticated users such as those tracked in step 430, classifications may be used to give a user a particular level of access. For example, members of a website that may be classified into “silver,” “gold,” and “platinum” members may be given different levels of access simply based on the IP (or network layer identifier or service location identifier) address that is accessed. In a mobile phone network, mobile phones may be classified into different priority classes corresponding to emergency personnel, government workers, first responders, and normal users. In a disaster area, first responders and emergency personnel, for example, may be given prioritized access to mobile networks to keep their communication channels open.

FIG. 6 illustrates an exemplary process (600), corresponding to exemplary step 280, of providing a security response or action based on missing, unexpected, or invalid authentication information. In step 610, identification information is analyzed to determine if it is recognized. This identification information may be any information to assist in identifying the user submitting the DNS resolution request, and may include incorrect or invalid authentication information or a source IP address. If the identification information is recognized, the process may determine if the user has previously been allowed access in step 620. The adaptive DNS server (120) may query the resource server (140), data store (130), or another logging system where connections have been logged to determine whether the user has previously been allowed access.

If the user was not recognized, the process may determine whether any reasons exist to deny access based on the identification information as in step 630. For example, the process may compare the source IP address with known blacklists or perform a geolocation on the source IP address. If the IP address has been blacklisted, then the process may determine to deny access to the user. Or if the IP address geocodes to a country or area not serviced by the resource server, then the process may determine to deny access to the user. A default policy may be implemented to always deny unknown users pending further determination as explained below. If no reason can be found to deny access, then the process may, in step 640, return an IP address corresponding to an identifier and location where the user may obtain authentication instructions. For example, a user accessing www.example.com may be unrecognized, but the authentication system determines that the user should be provided instructions on how to authenticate. In this case, the adaptive DNS server may respond with an IP address that serves a special version of the www.example.com website constituting prominent authentication instructions.

Turning back to step 620, if the identified user was previously denied access, then the threat possibilities may be determined in step 650 and actions taken in step 660. If the identified user was previously allowed access, but for some reason the authentication information is invalid, the user may be directed to a specialized version of the requested resource by a different IP address corresponding to authentication instructions as in step 640. Likewise, turning hack to step 630, if reasons were determined to deny access, such as when the source IP address was found on a blacklist, when the source IP address corresponds to a location not serviced by the resource server, or when a general policy is in place to deny all unknown traffic, then the threat possibilities associated with the DNS request may be determined in step 650 and actions taken in step 660.

Step 650 may consider a number of threat possibilities. In the case where access was previously denied for a source IP address, such behavior may indicate that the source IP address (user's computer (110)) is attempting to offer different forms of authentication information in order to defeat the authentication scheme. In the case where authentication information is invalid, because one piece is of information is different than expected, such behavior may indicate that a piece of equipment on the network has been taken over without the owner's permission. For example, if a source IP address is different than expected, but other authentication information is present, then the machine may have been stolen and connected to another network.

Based on the various threat possibilities, the process may take appropriate action in step 660. Such action may include, simply not responding; delaying the response and optionally increasing the delay with each subsequent DNS query from the same IP address; responding with an alternative IP (or network layer identifier or service location identifier) address corresponding to a special version of the resource, corresponding to authentication instructions; responding with an alternative IP (or network layer identifier or service location identifier) address corresponding to a special version of the resource, configured to look just like the resource; or responding with an alternative IP (or network layer identifier or service location identifier) address corresponding to a special version of the resource, configured to provide an alternative means of authentication, wherein the resource authentication interface may be updated as a result to allow further unhindered access.

For example, a user determined to be malicious may be served an IP address corresponding to a special version of the resource that looks and feels just like the true resource. The special version may collect data about the malicious user, then terminate its connection with the malicious user and analyze the data. In another example, a user may access a bank website from a particular IP address or machine for the first time. The bank may offer the user an alternative means of authentication, and, once authenticated, update the authentication information in the store (130) or in the resource server (140).

As discussed above, some DNS servers will cache DNS responses from the adaptive DNS server (120). Due to the integrity of the adaptive DNS server, caching may be undesirable. One way to prevent caching is by setting the time-to-live (TTL) in the response to 0, indicating that the response should not be cached. Another way to prevent caching is to encrypt the DNS response. The user's computer could have a public key corresponding to the adaptive DNS server's (120) private key. The adaptive DNS server may encrypt the response using the private key, which would be decrypted using the public key at the user's computer. Because the response would have been encrypted, a caching DNS server could not cache the response, or would not be able to resolve the ultimate response associated with the query. Caching corresponding to the root servers and TLD name servers (or other servers in the delegation graph) could still be done. Another alternative way of maintaining integrity of the authentication status is to cache the DNS at an authentication aware caching server. A DNS caching server that is authentication aware could perform a basic query to the adaptive DNS server (120) or the resource authentication interface (135) to determine whether the authentication was still valid prior to serving the response. If invalid the cached response would be flushed and the request made to the adaptive DNS server (120), processed in accordance with the processes discussed above.

FIG. 7 illustrates an exemplary architecture (700) demonstrating computer and networking components of an adaptive resolution platform corresponding to an embodiment utilizing a federated trust model according to a community-based policy management system. A community trust authority (705) may issue an authentication certificate to a user's computer (710) based on identification information provided when joining the community. Using the certificate as authentication information, the user's computer may request a resource at a particular fully qualified domain name (or a local network name). The request may be routed through an authentication aware network cache (715). The DNS resolution request may likewise be routed through an authenticating caching DNS sever (720). The caching server may then either pass the authentication request from the user's computer (710) on to the adaptive DNS server (730) or may compose a new set of authentication information to authenticate on behalf of the user's computer. If necessary, the caching DNS server may first query the root server (not shown) and registry DNS server (725) to obtain necessary authoritative nameserver information to locate the adaptive DNS server (730). The adaptive DNS server may use an authentication cache (735) and data store (740) to assist in the management of authentication. The adaptive DNS server (730) may connect to a resource authentication interface (745) if necessary to determine whether the authentication information is valid. Notably, the resource authentication interface (746) may be attached to the resource server, attached (not shown) to the community trust authority (705), or attached to both. Once authenticated, the adaptive DNS server (730) may return the DNS response to the adaptive caching DNS server (720), which would, in turn, return the response to the user's computer (710). The user's computer may then request the resource from the resource server (750), the authentication aware network cache (715), or a combination of the two.

One skilled in the art will appreciate that the architecture of FIG. 7 is merely exemplary. Other networking devices may be incorporated to manage traffic. In particular, one skilled in the art would recognize that firewalls, load balancers, additional mirrored servers (name server, resource server, and authentication interfaces), and certain name server caches may be incorporated into the network design and architecture. Further, one skilled in the art will recognize that additional hierarchical DNS servers may be queried, e.g., secure.www.example.com, and that interfaces and servers may be combined to be on one physical machine. Further still, one skilled in the art will recognize that supporting hardware may also be incorporated into the architecture, such as data stores and other memory devices.

FIG. 8 illustrates an exemplary process (800) of using authentication certificates in a federated network trust in an authenticating name request process. In step 810, the user sends identification information to a community trust authority (706) to request an authentication certificate validating the identification information. In an embodiment the authentication certificate may also contain information regarding permissions associated with the authentication certificate. The community trust authority (705) may return the authentication certificate to the user, as in step 820. One skilled in the art will understand that the community trust authority (705) may be a server located within a dosed network or a server located on the Internet, depending on the application of the community.

In step 830, a DNS request is sent by the user's computer to an adaptive DNS server (730) using the issued authentication certificate. In step 840, the adaptive DNS server may seek to validate the authentication certificate. Generally, either the adaptive DNS server will either recognize and trust the certificate issuer or will not trust the certificate issuer. In step 850, the adaptive DNS server (730) may determine whether the authentication information is valid based on the trust status of the certificate issuer and further based on a validation process of the certificate. If valid (and trusted), the authentication certificate may be used to deliver a user specific class specific DNS response. In step 860, the user may be classified into a group or class of recognized users. To do so, the adaptive DNS server (730) may query the resource authentication interface (745) if the adaptive DNS server does not have classification information in its cache (735). In step 870, an appropriate DNS response is returned and may be based on the identification information contained within the authentication certificate. If the authentication certificate was not validated or trusted, the adaptive DNS server (730) may determine an appropriate security response or action as in step 880.

One will appreciate that certain of the exemplary steps illustrated in process 800 parallel the exemplary steps illustrated in process 200. Thus, the specific exemplary processes found in FIGS. 3-6 may be applied to the processes found in FIG. 8 as appropriate.

In another embodiment, the previously discussed embodiments may be combined with a process of capturing and logging the DNS requests and responses based on the authentication result of the requestor. As discussed above, the adaptive DNS server (120 or 730) may be able to determine whether a response to a particular IP address was issued before the handling of a current request, e.g., steps 610 and 620 of process 600 found in FIG. 6. The authenticated DNS requests and responses may be categorized and logged. For example, a DNS request may include identification information which indicates that the requestor is on a blacklist. In this case, the request, identification information, and the corresponding appropriate DNS response (if any) may be logged. Likewise, a DNS request may include identification information which is validated, resulting in an appropriate DNS response. This information may also be logged. Indeed, all information corresponding to DNS requests and responses may be logged. The logged information may be analyzed for data trends pertaining to successful and unsuccessful authenticated DNS requests. For example, the logged information may be analyzed to determine whether IP addresses should be blacklisted after being repeatedly denied authentication, thereby improving efficiency of the overall authentication scheme.

A benefit of utilizing authenticated name resolution is that resolution requests may be categorized for billing purposes. For example, using the logging information or via another logging process done in real time, each of the requests may be categorized into legitimate requests or attack requests. The client utilizing the authentication service may then be billed according to one or both of those categories. Without authenticated resolution, a name server typically has difficulty charging on query volume because there is no way to know (or it would be too difficult to determine) whether the owner of the resource authorized a name request. But with the authenticating resolution framework, name requests may be billed both on volume authenticated as well as on a volume saved by denying a DNS response. For the volume authenticated, the billing may represent a volume portion of a fee to provide authenticated name resolution services. For the volume saved, the billing may represent a theoretical volume of traffic saved by hindering access to the resource server by denying a name request. Of course, billing for either of these is optional. Additionally, other categories of authenticated response may be billed on. For example, name resolution requests that are diverted to a server describing how to authenticate may be considered legitimate traffic and part of the authentication volume, even if the user is never actually authenticated. In implementations, billing can be based on whether or not the user has been authenticated. Also, billing can be tiered for additional levels of service, such as services that may only be available to authenticated users or to users that subscribe to those additional services.

Billing services may be incorporated within the authentication process itself, by, for example, categorizing each name lookup as a particular billing event at the same time a response is formed. Or billing services may be determined via log analysis on a periodic basis by categorizing each logged query ex post.

Other embodiments of the disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the embodiments disclosed herein. In particular, it should be appreciated that the processes defined herein are merely exemplary, and that the steps of the processes need not necessarily be performed in the order presented. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the embodiments being indicated by the following claims. 

What is claimed is:
 1. A computer-implemented method for responding to a domain name system (DNS) request, comprising: receiving, at a DNS server, a DNS resolution request including information related to any, or combinations of, device specific information, user specific information, and authentication information; analyzing, on the DNS server, the information; determining, by the DNS server, a DNS action based on the analyzing of the information, wherein the DNS action comprises any, or combinations of, sending a response message with an individualized IP address, network layer identifier, or service location identifier; delaying sending a response message; sending a response message with an IP address corresponding to a website address containing authentication instructions; sending a response message with an IP address corresponding to a website configured to mimic the website of the requested address; sending a customized response based on the device specific information, sending a customized response based on the user specific information, and combinations thereof; and executing, on the DNS server, the DNS action.
 2. The method of claim 1, wherein the information is added to the DNS resolution request by a device other than a device that originates the DNS resolution request.
 3. The method of claim 1, wherein the information includes any, or combinations of, a source network layer address, a username/password combination, an encrypted data package, a security certificate, and hardware identification information, wherein the hardware information comprises one or more of: operating system type information, operating system version information, operating system patch information.
 4. The method of claim 1, comprising: receiving, at the DNS server, authentication information from a resource server for a particular user; and updating the DNS server to store the authentication information.
 5. The method of claim 1, wherein the individualized IP address, network layer identifier, or service location identifier corresponds to a one-time-use address.
 6. The method of claim 1, wherein the individualized IP address, network layer identifier, or service location identifier corresponds to an address assigned to a particular user.
 7. The method of claim 1, wherein delaying sending a message comprises: determining that a DNS request was received from a particular user previously; determining that a DNS response was delayed for a first time period; and delaying sending a message by a second time period, wherein the second time period is greater than the first time period.
 8. The method of claim 1, comprising: defining discrete classes of users; prioritizing the discrete classes of users into a prioritized list of classes of users, wherein higher priority classes receive access to services first or a higher quality of services; classifying a user into a class in the prioritized list of classes; and providing access to services first or a higher quality of services based on the classifying, wherein the DNS action comprises: sending a response message with an IP address corresponding to a server delivering a particular class.
 9. The method of claim 1, comprising: determining a billing event based on the analyzing of the information, and billing a client based on the billing event.
 10. A system for authenticating a DNS request, comprising: a DNS server comprising: a processor; and memory, wherein the memory contains instructions, which, when executed by the processor, perform a method comprising: receiving at the DNS server a DNS resolution request including information related to any, or combinations of, device specific information, user specific information, and authentication information; analyzing, on the DNS server, the information; determining, by the DNS server, a DNS action based on the analyzing of the information, wherein the DNS action comprises any, or combinations of, sending a response message with an individualized network layer address or service location address, delaying sending a response message, sending a response message with an IP address corresponding to a website address containing authentication instructions, sending a response message with an IP address corresponding to a website configured to mimic the website of the requested address, and sending a customized response based on the device specific information, sending a customized response based on the user specific information, and combinations thereof; and executing, on the DNS server, the DNS action.
 11. The system of claim 10, wherein information is added to the DNS resolution request by a device other than a device that originates the DNS resolution request.
 12. The system of claim 10, wherein authentication information includes one or more of: a source network layer address, a username/password combination, an encrypted data package, a security certificate, or hardware identification information, wherein the hardware information comprises one or ore of: operating system type information, operating system version information, operating system patch information.
 13. The system of claim 10, wherein the method comprises: receiving, at the DNS server, information from a resource server for a particular user; and updating the DNS server to store the authentication information.
 14. The system of claim 10, wherein the individualized network layer address or service location address corresponds to a one-time-use address.
 15. The system of claim 10, wherein the individualized network layer address or service location address corresponds to an address assigned to a particular user.
 16. The system of claim 10, wherein delaying sending a message comprises: determining that a DNS request was received from a particular user previously; determining that a DNS response was delayed for a first time period; and delaying sending a message by a second time period, wherein the second time period is greater than the first time period.
 17. The system of claim 10, wherein the method comprises: defining discrete classes of users; prioritizing the discrete classes of users into a prioritized list of classes of users, wherein higher priority classes receive access to services first or a higher quality of services: classifying a user into a class in the prioritized list of classes; and providing access to services first or a higher quality of services based on the classifying, wherein the DNS action comprises: sending a response message with an IP address corresponding to a server delivering a particular class.
 18. The system of claim 10, wherein the method comprises: determining a billing event based on the analyzing of the information, and billing a client based on the billing event.
 19. A non-transitory computer-readable medium containing instructions, which, when executed by a processor, perform a method comprising: receiving at an authenticating server a DNS resolution request including authentication information; validating, on the authenticating server, the authentication information; determining, by the authenticating server, a DNS action based on the validation of the authentication information, wherein the DNS action comprises at least one of: sending a response message with an individualized network layer address or service location address, delaying sending a response message, sending a response message with an IP address corresponding to a website address containing authentication instructions, and sending a response message with an IP address corresponding to a website configured to mimic the website of the requested address; and executing, on the authenticating server, the DNS action.
 20. The non transitory computer-readable medium of claim 19, wherein authentication information is added to the DNS resolution request by a device other than a device that originates the DNS resolution request.
 21. The non-transitory computer-readable medium of claim 19, wherein authentication information includes one or more of: a source network layer address, a username/password combination, an encrypted data package, a security certificate, or hardware identification information, wherein the hardware information comprises specific hardware configuration information or one or more of operating system or application type information, operating system or application version information, operating system or application patch information.
 22. The non-transitory computer-readable medium of claim 21, further comprising analyzing the hardware identification information to provide security to the device.
 23. The non-transitory computer-readable medium of claim 19, wherein the method comprises: receiving, at the authenticating server, authentication information from a resource server for a particular user; and updating the authenticating server to store the authentication information.
 24. The non-transitory compute readable medium of claim 19, wherein the individualized network layer address or service location address corresponds to a one-time-use address.
 25. The non-transitory computer-readable medium of claim 19, wherein the individualized network layer address or service location address corresponds to an address assigned to a particular user.
 26. The non-transitory computer-readable medium of claim 19, wherein delaying sending a message comprises: determining that a DNS request was received from a particular user previously; determining that a DNS response was delayed for a first time period; and delaying sending a message by a second time period, wherein the second time period is greater than the first time period.
 27. The non-transitory computer readable medium of claim 19, wherein the method comprises: determining a prioritized list of classes of users, wherein higher priority classes receive access to services first or a higher quality of services; and classifying a user based on the authentication information into a class in the prioritized list of classes, wherein the DNS action comprises: sending a response message with an IP address corresponding to a server delivering a particular class.
 28. The non-transitory computer readable medium of claim 19, wherein the method comprises: determining a billing event based on the validation of the authentication information, and billing a client based on the billing event.
 29. A method for authenticating a DNS request, comprising: receiving, at an authenticating server, a DNS resolution request from a user, wherein the request includes a domain name to be resolved and an authentication certificate, wherein the authentication certificate was issued by a community authority trust in response to a request for identification authentication by the user; validating, on the authenticating server, the authentication certificate; determining, by the authenticating server, a network layer address or service location address based on the validation of the authentication certificate; and sending the network layer address to the user.
 30. The method of claim 29, wherein the authentication certificate indicates the authentication of a group of users. 